
using System;

namespace SpotifyGenNHibernate.EN.Spotify
{
        public class UsuarioEN
        {
        /**
         *
         */

        private String nombre;

        /**
         *
         */

        private String contrasena;

        /**
         *
         */

        private int tipo;

        /**
         *
         */

        private System.Collections.Generic.IList<SpotifyGenNHibernate.EN.Spotify.AnuncioEN> anuncio;

        /**
         *
         */

        private Spotify.ContadorEN usuarioOpen;

        /**
         *
         */

        private Spotify.ColaReproduccionEN colaReproduccion;

        /**
         *
         */

        private System.Collections.Generic.IList<SpotifyGenNHibernate.EN.Spotify.CancionEN> cancion;

        /**
         *
         */

        private System.Collections.Generic.IList<SpotifyGenNHibernate.EN.Spotify.RadioEN> radio;

        /**
         *
         */

        private System.Collections.Generic.IList<SpotifyGenNHibernate.EN.Spotify.TPVEN> tPV;





        public virtual String Nombre { get { return nombre; } set { nombre = value;  } }


        public virtual String Contrasena { get { return contrasena; } set { contrasena = value;  } }


        public virtual int Tipo { get { return tipo; } set { tipo = value;  } }


        public virtual System.Collections.Generic.IList<SpotifyGenNHibernate.EN.Spotify.AnuncioEN> Anuncio { get { return anuncio; } set { anuncio = value;  } }


        public virtual Spotify.ContadorEN UsuarioOpen { get { return usuarioOpen; } set { usuarioOpen = value;  } }


        public virtual Spotify.ColaReproduccionEN ColaReproduccion { get { return colaReproduccion; } set { colaReproduccion = value;  } }


        public virtual System.Collections.Generic.IList<SpotifyGenNHibernate.EN.Spotify.CancionEN> Cancion { get { return cancion; } set { cancion = value;  } }


        public virtual System.Collections.Generic.IList<SpotifyGenNHibernate.EN.Spotify.RadioEN> Radio { get { return radio; } set { radio = value;  } }


        public virtual System.Collections.Generic.IList<SpotifyGenNHibernate.EN.Spotify.TPVEN> TPV { get { return tPV; } set { tPV = value;  } }



        public UsuarioEN()
        {
            
        }



        public UsuarioEN(String nombre, String contrasena, int tipo, System.Collections.Generic.IList<SpotifyGenNHibernate.EN.Spotify.AnuncioEN> anuncio, Spotify.ContadorEN usuarioOpen, Spotify.ColaReproduccionEN colaReproduccion, System.Collections.Generic.IList<SpotifyGenNHibernate.EN.Spotify.CancionEN> cancion, System.Collections.Generic.IList<SpotifyGenNHibernate.EN.Spotify.RadioEN> radio, System.Collections.Generic.IList<SpotifyGenNHibernate.EN.Spotify.TPVEN> tPV)
        {
                this.init (nombre, contrasena, tipo, anuncio, usuarioOpen, colaReproduccion, cancion, radio, tPV);
        }


        public UsuarioEN(UsuarioEN usuario)
        {
                this.init (usuario.Nombre, usuario.Contrasena, usuario.Tipo, usuario.Anuncio, usuario.UsuarioOpen, usuario.ColaReproduccion, usuario.Cancion, usuario.Radio, usuario.TPV);
        }

        private void init (String nombre, String contrasena, int tipo, System.Collections.Generic.IList<SpotifyGenNHibernate.EN.Spotify.AnuncioEN> anuncio, Spotify.ContadorEN usuarioOpen, Spotify.ColaReproduccionEN colaReproduccion, System.Collections.Generic.IList<SpotifyGenNHibernate.EN.Spotify.CancionEN> cancion, System.Collections.Generic.IList<SpotifyGenNHibernate.EN.Spotify.RadioEN> radio, System.Collections.Generic.IList<SpotifyGenNHibernate.EN.Spotify.TPVEN> tPV)
        {
                this.Nombre = Nombre;


                this.Contrasena = contrasena;

                this.Tipo = tipo;

                this.Anuncio = anuncio;

                this.UsuarioOpen = usuarioOpen;

                this.ColaReproduccion = colaReproduccion;

                this.Cancion = cancion;

                this.Radio = radio;

                this.TPV = tPV;
        }

        public override bool Equals (object obj)
        {
                if (obj == null)
                        return false;
                UsuarioEN t = obj as UsuarioEN;
                if (t == null)
                        return false;
                if (Nombre.Equals (t.Nombre))
                        return true;
                else
                        return false;
        }

        public override int GetHashCode ()
        {
                int hash = 13;

                hash += (null == Nombre ? 0 : this.Nombre.GetHashCode ());
                return hash;
        }
        }
}
